package me.android.library.common.service.monitor;

import android.bluetooth.BluetoothDevice;

/**
 * 蓝牙连接监控接口
 * 定义蓝牙连接相关的监控方法
 */
public interface BluetoothConnectionMonitor extends ConnectionMonitor {
    /**
     * 开始扫描蓝牙设备
     */
    void startBluetoothScan();

    /**
     * 停止扫描蓝牙设备
     */
    void stopBluetoothScan();

    /**
     * 设置目标蓝牙设备并尝试连接
     * @param device 目标蓝牙设备
     */
    void setTargetBluetoothDevice(BluetoothDevice device);

    /**
     * 获取当前目标蓝牙设备
     */
    BluetoothDevice getTargetBluetoothDevice();

    /**
     * 清除已保存的蓝牙设备信息
     */
    void clearBluetoothDeviceInfo();

    /**
     * 检查蓝牙是否已连接
     */
    boolean isBluetoothConnected();

    /**
     * 添加蓝牙设备扫描监听器
     */
    void addBluetoothScanListener(BluetoothScanListener listener);

    /**
     * 移除蓝牙设备扫描监听器
     */
    void removeBluetoothScanListener(BluetoothScanListener listener);

    /**
     * 蓝牙设备扫描监听器接口
     */
    interface BluetoothScanListener {
        void onBluetoothDeviceFound(BluetoothDevice device);
        void onBluetoothScanFinished();
        void onBluetoothScanError(int errorCode);
    }
}

